const Koa = require('koa');

const app = new Koa();

const static = require('koa-static');

const path = require('path');

const Router = require('koa-router');

//koa-router  写接口

//async await 函数

//中间件的原理

const router = new Router();

app.use(async (ctx,next) => {
    console.log(ctx.url);
    await next(); //等待 ???????????????????????????????????????????
})

//静态资源
app.use(static(path.join(__dirname,'./public')));



/**
 * ctx : request response
 * 
 * ctx.request.method  请求方式   省略写   ctx.method
 * 
 * ctx.request.url     请求地址            ctx.url  地址栏携带参数   /?key=1
 * 
 * ctx.request.header  请求头
 * 
 * ctx.request.path    请求地址            ctx.path  地址栏携带参数   /
 * 
 * =====================================
 *
 * ctx.response.status 状态码
 * 
 * ctx.response.message  响应的信息
 * 
 * ctx.response.header  响应头
 * 
 * ctx.response.body    响应体
 * 
*/

app.use(async (ctx,next) => {
    console.log("=====测试====="); //?????????????????????????????????????/
    await next();
})

//挂载路由的功能
app.use(router.routes());

app.use(router.allowedMethods());

router.get('/api/list',(ctx,next) => {
    console.log("====");
    ctx.body = 'Hello World!';
})

app.listen(3000,() => {
    console.log("服务启动成功");
})

//前端请求：1.请求静态资源  2.接口


//作业：1.周考题 必会  2.koa  中间件的机制明白  koa-static  koa-router  3.软件 postman phpStudy navicate